IF LOAD
  
  SET NAME PATCH_NAME
  
  ALIAS J0 PATCH_NAME_DIGIT
  ALIAS K0 LOOP_INDEX
  ALIAS L0 MIDI_ARRAY_INDEX
  ALIAS M0 MIDI_MESSAGE
  ALIAS M4 NOVATION_DEVICE_ID
  ALIAS K1 CHANNEL
  
  DEFINE SYSEX_VALUE ML0
  DEFINE NOVATION_SYSEX_HEADER F0 00 20 29
  DEFINE CIRCUIT 01 60
  
  SUB SYNTH_NUMBER
    CALC CHANNEL = BD + M7
  END
  
  SUBROUTINE INCREMENT ARG1
    CALC ARG1 = ARG1 + 1
  END
  
  SUBROUTINE FETCH_PATCH_NAME
    IF MIDI_MESSAGE == NOVATION_SYSEX_HEADER
      IF NOVATION_DEVICE_ID == CIRCUIT
        SYNTH_NUMBER
        WHILE LOOP_INDEX <= $15
          SEND CHANNEL PATCH_NAME_DIGIT SYSEX_VALUE
          INCREMENT PATCH_NAME_DIGIT
          INCREMENT LOOP_INDEX
          INCREMENT MIDI_ARRAY_INDEX
        END
      END
    END
  END
  
END

ASSIGN LOOP_INDEX = 0
ASSIGN PATCH_NAME_DIGIT = $40
ASSIGN MIDI_ARRAY_INDEX = 09

FETCH_PATCH_NAME
